/*----------------------------------------------------------------------------
 * osObjects.h: CMSIS-RTOS global object definitions for an application
 *----------------------------------------------------------------------------
 *
 * This header file defines global RTOS objects used throughout a project
 *
 * #define osObjectsPublic indicates that objects are defined; without that
 * definition the objects are defined as external symbols.
 *
 *--------------------------------------------------------------------------*/


#ifndef __osObjects
#define __osObjects

#if (!defined (osObjectsPublic))
#define osObjectsExternal           // define RTOS objects with extern attribute
#endif

#ifdef osObjectsPublic
#define OBJ_EXT  
#else
#define OBJ_EXT extern 
#endif

#include "cmsis_os.h"               // CMSIS RTOS header file


// global 'thread' functions ---------------------------------------------------
/* 
Example:
extern void sample_name (void const *argument);         // thread function

osThreadId tid_sample_name;                             // thread id
osThreadDef (sample_name, osPriorityNormal, 1, 0);      // thread object
*/
int Init_Thread (void);


OBJ_EXT osThreadId tid_SysTask;                                  // thread id
OBJ_EXT osThreadId tid_MbTask;                                   // thread id
OBJ_EXT osThreadId tid_PidTask;                                  // thread id
OBJ_EXT osThreadId tid_TempTask;                                   // thread id

// global 'semaphores' ----------------------------------------------------------


// global 'memory pools' --------------------------------------------------------



// global 'message queues' -------------------------------------------------------

// global 'mail queues' ----------------------------------------------------------


#endif  // __osObjects
